Terraform স্ক্রিপ্ট লেখা এবং ডিপ্লয়মেন্ট

Web Development - আমাজন ওয়েব সার্ভিস (Amazon Web Services) - Terraform এবং Infrastructure as Code (IaC) |
3
3

Terraform একটি ওপেন সোর্স ইনফ্রাস্ট্রাকচার অ্যাজ কোড (IaC) টুল যা ব্যবহারকারীদের ক্লাউড ইনফ্রাস্ট্রাকচার তৈরি, কনফিগার এবং ম্যানেজ করতে সাহায্য করে। AWS-এ Terraform ব্যবহার করে আপনি সহজেই ইনফ্রাস্ট্রাকচার রিসোর্স যেমন EC2, S3, RDS, VPC ইত্যাদি তৈরি এবং পরিচালনা করতে পারেন। Terraform স্ক্রিপ্ট লিখে আপনি AWS রিসোর্সগুলো ডিপ্লয় করতে পারেন এবং পুনরায় ব্যবহারের জন্য কনফিগারেশনকে কোড আকারে সংরক্ষণ করতে পারেন।


Terraform কীভাবে কাজ করে?

Terraform মূলত HCL (HashiCorp Configuration Language) ভাষায় স্ক্রিপ্ট লেখে, যা ইনফ্রাস্ট্রাকচার রিসোর্সের কনফিগারেশন এবং ম্যানেজমেন্ট নির্ধারণ করে। Terraform রিসোর্সের স্টেট ফাইলের মাধ্যমে ইনফ্রাস্ট্রাকচারের বর্তমান অবস্থা ট্র্যাক করে এবং কনফিগারেশন পরিবর্তন হলে তা সিঙ্ক করে।


Terraform স্ক্রিপ্ট লেখা

AWS-এ Terraform স্ক্রিপ্ট লেখার জন্য প্রথমে আপনাকে main.tf নামে একটি ফাইল তৈরি করতে হবে। এই স্ক্রিপ্টে আপনি নির্দিষ্ট AWS রিসোর্স (যেমন EC2, S3, VPC ইত্যাদি) কনফিগার করবেন।

১. Terraform ইনস্টলেশন

প্রথমে Terraform ইনস্টল করুন। Terraform ডাউনলোড পেজ থেকে আপনার সিস্টেমের জন্য উপযুক্ত ভার্সন ডাউনলোড করুন।

২. AWS প্রোভাইডার কনফিগারেশন

main.tf ফাইলটি তৈরি করার আগে, আপনাকে AWS প্রোভাইডার কনফিগার করতে হবে। এটি Terraform কে AWS-এর সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়।

provider "aws" {
  region = "us-west-2"   # এখানে আপনার AWS রিজিয়ন সেট করুন
}

৩. EC2 ইনস্ট্যান্স তৈরি করা

এখন একটি EC2 ইনস্ট্যান্স তৈরি করার জন্য Terraform স্ক্রিপ্ট লিখুন। নিচে একটি সাধারণ EC2 ইনস্ট্যান্স তৈরি করার স্ক্রিপ্ট দেওয়া হলো:

resource "aws_instance" "my_instance" {
  ami           = "ami-0c55b159cbfafe1f0"  # AWS Marketplace থেকে সঠিক AMI ID নির্বাচন করুন
  instance_type = "t2.micro"               # ইনস্ট্যান্স টাইপ
  key_name      = "my-keypair"             # আপনার SSH কী পেয়ার
  tags = {
    Name = "MyFirstInstance"
  }
}

৪. S3 বকেট তৈরি করা

এছাড়াও আপনি একটি S3 বকেট তৈরি করতে পারেন, যা ফাইল স্টোরেজ হিসেবে ব্যবহৃত হবে। নিচে একটি উদাহরণ দেওয়া হলো:

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-bucket-name-12345"
  acl    = "private"
}

৫. VPC তৈরি করা

AWS VPC তৈরি করতে হলে, আপনাকে প্রথমে একটি VPC রিসোর্স কনফিগার করতে হবে। একটি সাধারণ VPC কনফিগারেশন নিচে দেওয়া হলো:

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  enable_dns_support = true
  enable_dns_hostnames = true
}

Terraform ডিপ্লয়মেন্ট

১. Terraform ইনিশিয়ালাইজেশন (terraform init)

Terraform স্ক্রিপ্ট লেখা শেষে, প্রথমে ইনফ্রাস্ট্রাকচারকে ইনিশিয়ালাইজ করতে হবে। এটি প্রজেক্টের জন্য সমস্ত প্রয়োজনীয় প্লাগিন এবং ডিপেনডেন্সি ডাউনলোড করে।

terraform init

২. Terraform প্ল্যান (terraform plan)

এটি Terraform কনফিগারেশনের পরিবর্তনগুলি দেখাবে যা AWS ইনফ্রাস্ট্রাকচারে প্রভাব ফেলবে। এটি একটি নিরাপদ পদ্ধতি, যেখানে আপনি প্রকৃত পরিবর্তন করার আগে এক নজরে দেখতে পারবেন কী পরিবর্তন হতে যাচ্ছে।

terraform plan

৩. Terraform অ্যাপ্লাই (terraform apply)

যখন আপনি নিশ্চিত হন যে Terraform কনফিগারেশন সঠিক, তখন আপনি apply কমান্ড দিয়ে রিসোর্স তৈরি বা পরিবর্তন করতে পারবেন। Terraform আপনাকে সকল পরিবর্তন কনফার্ম করতে বলবে, তারপর আপনি yes টাইপ করলে রিসোর্স ডিপ্লয় হবে।

terraform apply

৪. Terraform স্টেট ফাইল

Terraform স্বয়ংক্রিয়ভাবে একটি terraform.tfstate ফাইল তৈরি করবে, যা রিসোর্সের বর্তমান অবস্থা ট্র্যাক করবে। এই ফাইলটি ইনফ্রাস্ট্রাকচারের প্রতিটি পরিবর্তন দেখাবে এবং Terraformকে পরবর্তী পরিবর্তনগুলো সিঙ্ক করতে সাহায্য করবে।

৫. Terraform ডেস্ট্রয় (terraform destroy)

যদি আপনি AWS রিসোর্সগুলি মুছে ফেলতে চান, তবে destroy কমান্ড ব্যবহার করতে পারেন:

terraform destroy

এটি সমস্ত রিসোর্স মুছে ফেলবে এবং আপনার AWS অ্যাকাউন্টে কোনো অবশিষ্ট রিসোর্স থাকবে না।


সারাংশ

  • Terraform একটি শক্তিশালী Infrastructure as Code (IaC) টুল যা AWS রিসোর্স ব্যবস্থাপনায় অত্যন্ত কার্যকরী।
  • Terraform স্ক্রিপ্ট ব্যবহার করে আপনি AWS-এর সমস্ত রিসোর্স (EC2, S3, VPC, RDS ইত্যাদি) কনফিগার এবং ম্যানেজ করতে পারেন।
  • Terraform ডিপ্লয়মেন্টের প্রক্রিয়া হল init, plan, apply, এবং destroy কমান্ডগুলোর মাধ্যমে রিসোর্স তৈরি ও ম্যানেজ করা।
  • Terraform ব্যবহার করে AWS রিসোর্সের অটোমেটেড ডিপ্লয়মেন্ট, স্কেলিং এবং ম্যানেজমেন্ট সম্ভব, যা সিস্টেম প্রশাসক ও ডেভেলপারদের জন্য কার্যকরী এবং সুবিধাজনক।

Terraform ব্যবহার করে আপনি একাধিক ক্লাউড ইনফ্রাস্ট্রাকচারকে সহজে ম্যানেজ এবং ডিপ্লয় করতে পারেন, যা আপনার উন্নয়ন প্রক্রিয়াকে আরও দ্রুত এবং কার্যকরী করে তোলে।

Content added By
Promotion